// RAP [rh] SplashHandler disabled ///******************************************************************************* // * Copyright (c) 2007 IBM Corporation and others. // * All rights reserved. This program and the accompanying materials // * are made available under the terms of the Eclipse Public License v1.0 // * which accompanies this distribution, and is available at // * http://www.eclipse.org/legal/epl-v10.html // * // * Contributors: // * IBM Corporation - initial API and implementation // ******************************************************************************/ // //package org.eclipse.ui.internal.splash; // //import java.util.HashMap; //import java.util.Map; // //import org.eclipse.core.runtime.IConfigurationElement; //import org.eclipse.core.runtime.IExtension; //import org.eclipse.core.runtime.IExtensionPoint; //import org.eclipse.core.runtime.IProduct; //import org.eclipse.core.runtime.Platform; //import org.eclipse.core.runtime.SafeRunner; //import org.eclipse.jface.util.SafeRunnable; //import org.eclipse.ui.PlatformUI; //import org.eclipse.ui.internal.WorkbenchPlugin; //import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants; //import org.eclipse.ui.splash.AbstractSplashHandler; // ///** // * Simple non-caching access to the splashHandler extension point. // * // * @since 3.3 // */ //public final class SplashHandlerFactory { // // /** // * Find the splash handler for the given product or <code>null</code> if // * it cannot be found. // * // * @param product // * the product // * @return the splash or <code>null</code> // */ // public static AbstractSplashHandler findSplashHandlerFor(IProduct product) { // if (product == null) // return null; // // IExtensionPoint point = Platform.getExtensionRegistry() // .getExtensionPoint(PlatformUI.PLUGIN_ID, // IWorkbenchRegistryConstants.PL_SPLASH_HANDLERS); // // if (point == null) // return null; // // IExtension[] extensions = point.getExtensions(); // Map idToSplash = new HashMap(); // String->ConfigurationElement // String[] targetId = new String[1]; // for (int i = 0; i < extensions.length; i++) { // IConfigurationElement[] children = extensions[i] // .getConfigurationElements(); // for (int j = 0; j < children.length; j++) { // AbstractSplashHandler handler = processElement(children[j], // idToSplash, targetId, product); // if (handler != null) // return handler; // // } // } // return null; // } // // /** // * Process a given element. // * // * @param configurationElement // * the element to process // * @param idToSplash // * the map of current splash elements // * @param targetId // * the target id if known // * @param product // * the product to search for // * @return a splash matching the target id from this element or // * <code>null</code> // */ // private static AbstractSplashHandler processElement( // IConfigurationElement configurationElement, Map idToSplash, // String[] targetId, IProduct product) { // String type = configurationElement.getName(); // if (IWorkbenchRegistryConstants.TAG_SPLASH_HANDLER.equals(type)) { // String id = configurationElement // .getAttribute(IWorkbenchRegistryConstants.ATT_ID); // if (id == null) // return null; // // // we know the target and this element is it // if (targetId[0] != null && id.equals(targetId[0])) { // return create(configurationElement); // } // // store for later examination // idToSplash.put(id, configurationElement); // // } else if (IWorkbenchRegistryConstants.TAG_SPLASH_HANDLER_PRODUCT_BINDING // .equals(type)) { // String productId = configurationElement // .getAttribute(IWorkbenchRegistryConstants.ATT_PRODUCTID); // if (product.getId().equals(productId) && targetId[0] == null) { // we // // found the target ID // targetId[0] = configurationElement // .getAttribute(IWorkbenchRegistryConstants.ATT_SPLASH_ID); // // check all currently located splashes // IConfigurationElement splashElement = (IConfigurationElement) idToSplash // .get(targetId[0]); // if (splashElement != null) // return create(splashElement); // } // } // // return null; // } // // /** // * Create the splash implementation. // * // * @param splashElement // * the element to create from // * @return the element or <code>null</code> if it couldn't be created // */ // private static AbstractSplashHandler create( // final IConfigurationElement splashElement) { // final AbstractSplashHandler[] handler = new AbstractSplashHandler[1]; // SafeRunner.run(new SafeRunnable() { // // /* // * (non-Javadoc) // * // * @see org.eclipse.core.runtime.ISafeRunnable#run() // */ // public void run() throws Exception { // handler[0] = (AbstractSplashHandler) WorkbenchPlugin // .createExtension(splashElement, // IWorkbenchRegistryConstants.ATT_CLASS); // } // // /* // * (non-Javadoc) // * // * @see org.eclipse.jface.util.SafeRunnable#handleException(java.lang.Throwable) // */ // public void handleException(Throwable e) { // WorkbenchPlugin // .log("Problem creating splash implementation", e); //$NON-NLS-1$ // } // }); // // return handler[0]; // } //}